const multer = require('multer');
const path = require('path');

// 配置文件上传
const storage = multer.diskStorage({
    destination: function (req, file, cb) {
        cb(null, path.join(__dirname, 'user')); // 上传的文件保存的目录
    },
    filename: function (req, file, cb) {
        // 文件名以时间戳命名，确保唯一性
        cb(null, Date.now() + path.extname(file.originalname));
    }
});

// 创建 multer 实例
const upload = multer({ storage: storage }).single('file');

// 上传图片的方法
function uploadImage (req, res) {
    upload(req, res, function (err) {
        if (err instanceof multer.MulterError) {
            // 发生 Multer 错误
            return res.status(500).json({ error: err.message });
        } else if (err) {
            // 发生其他错误
            return res.status(500).json({ error: err.message });
        }

        // 文件上传成功
        if (!req.file) {
            return res.status(400).json({ error: '请上传文件' });
        }

        // 返回上传文件的信息
        res.send({
            status: 200,
            message: '文件上传成功',
            filename: req.file.filename,
            path: req.file.path,
            req: req.file
        });
    });
}

module.exports = uploadImage